home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / dalla rivista / host contacted / imengv3.41p2.lha / ImEngV3.41p2 / Extra / ARexx / IndexReverse.rexx < prev    next >
OS/2 REXX Batch file  |  1997-01-09  |  2KB  |  61 lines

  1. /*
  2. ** $VER: IndexReverse.rexx 1.01 (9/1 Stockholm/Sweden)
  3. ** Copyright © 1997 by Patrik M Nydensten 
  4. **
  5. ** Reverses the order of indexed files within a selected index range.
  6. ** The new name will be the old basename but with another index number.
  7. ** The index number will be: <high_index> - <current_index> + 1
  8. **
  9. ** Usage: <first_index_file> <last_index_file>
  10. */
  11.  
  12. options results
  13.  
  14. parse arg files
  15. if pos('"',files) = 0 then parse var files file1 file2
  16. else parse var files '"'file1'"' '"'file2'"'
  17.  
  18. fix = strip(get_ext(file1)) ; lix = strip(get_ext(file2))
  19. if ((~datatype(fix,'N'))|(~datatype(lix,'N'))) then errorx('Error: Bad index number in file name.')
  20. fi = min(fix,lix) ; li = max(fix,lix)
  21.  
  22. do i = fi to li
  23.   new_file = get_base(file1)'.'right(fi+li-i,4,'0')
  24.   old_file = get_base(file1)'.'right(i,4,'0')
  25.   if exists(old_file) then do
  26.     address 'COMMAND' 'rename' '"'old_file'"' '"'new_file'!"'
  27.   end
  28.   else say 'Error: Could not locate file "'old_file'".'
  29. end
  30.  
  31. do i = fi to li
  32.   new_file = get_base(file1)'.'right(fi+li-i,4,'0')
  33.   if exists(new_file'!') then do
  34.     if ~exists(new_file) then address 'COMMAND' 'rename' '"'new_file'!"' '"'new_file'"'
  35.     else say 'Error: An image with that name already exist!'d2c(10)||,
  36.              '       File: "'new_file'"'
  37.   end
  38. end
  39.  
  40. exit
  41.  
  42. /* --[ proc ]--------------------------- */
  43.  
  44. errorx:
  45.   parse arg text
  46.   say text
  47.   exit 5
  48. return 0
  49.  
  50. get_ext:
  51.   parse arg get_ext_in
  52.   if lastpos('.',get_ext_in) ~= 0 then get_ext_back = substr(get_ext_in,1+lastpos('.',get_ext_in))
  53.   else get_ext_back = ''
  54. return get_ext_back
  55.  
  56. get_base:
  57.   parse arg get_base_in
  58.   if lastpos('.',get_base_in) ~= 0 then get_base_back = substr(get_base_in,1,lastpos('.',get_base_in)-1)
  59.   else get_base_back = get_base_in
  60. return get_base_back
  61.